// privacy.js
const app = getApp()

Page({
  data: {
    // 隐私设置开关状态
    locationEnabled: true,
    dataSyncEnabled: true,
    notificationEnabled: true,
    wechatAuthEnabled: true,
    analyticsEnabled: false,
    
    // 弹窗状态
    showDeleteModal: false
  },

  onLoad() {
    this.loadPrivacySettings()
  },

  onShow() {
    // 页面显示时刷新设置状态
    this.loadPrivacySettings()
  },

  // 加载隐私设置
  loadPrivacySettings() {
    try {
      const settings = wx.getStorageSync('privacySettings') || {}
      
      this.setData({
        locationEnabled: settings.locationEnabled !== false, // 默认开启
        dataSyncEnabled: settings.dataSyncEnabled !== false, // 默认开启
        notificationEnabled: settings.notificationEnabled !== false, // 默认开启
        wechatAuthEnabled: settings.wechatAuthEnabled !== false, // 默认开启
        analyticsEnabled: settings.analyticsEnabled === true // 默认关闭
      })
    } catch (error) {
      console.error('加载隐私设置失败:', error)
    }
  },

  // 保存隐私设置
  savePrivacySettings() {
    try {
      const settings = {
        locationEnabled: this.data.locationEnabled,
        dataSyncEnabled: this.data.dataSyncEnabled,
        notificationEnabled: this.data.notificationEnabled,
        wechatAuthEnabled: this.data.wechatAuthEnabled,
        analyticsEnabled: this.data.analyticsEnabled
      }
      
      wx.setStorageSync('privacySettings', settings)
      console.log('隐私设置已保存:', settings)
    } catch (error) {
      console.error('保存隐私设置失败:', error)
      wx.showToast({
        title: '保存失败',
        icon: 'error'
      })
    }
  },

  // 切换位置信息
  toggleLocation(e) {
    const enabled = e.detail.value
    this.setData({ locationEnabled: enabled })
    
    if (enabled) {
      // 请求位置权限
      wx.getSetting({
        success: (res) => {
          if (!res.authSetting['scope.userLocation']) {
            wx.authorize({
              scope: 'scope.userLocation',
              success: () => {
                console.log('位置权限已授权')
              },
              fail: () => {
                console.log('位置权限被拒绝')
                this.setData({ locationEnabled: false })
                wx.showToast({
                  title: '需要位置权限',
                  icon: 'none'
                })
              }
            })
          }
        }
      })
    }
    
    this.savePrivacySettings()
  },

  // 切换数据同步
  toggleDataSync(e) {
    const enabled = e.detail.value
    this.setData({ dataSyncEnabled: enabled })
    
    if (enabled) {
      wx.showToast({
        title: '数据同步已开启',
        icon: 'success'
      })
    } else {
      wx.showToast({
        title: '数据同步已关闭',
        icon: 'success'
      })
    }
    
    this.savePrivacySettings()
  },

  // 切换推送通知
  toggleNotification(e) {
    const enabled = e.detail.value
    this.setData({ notificationEnabled: enabled })
    
    if (enabled) {
      wx.showToast({
        title: '推送通知已开启',
        icon: 'success'
      })
    } else {
      wx.showToast({
        title: '推送通知已关闭',
        icon: 'success'
      })
    }
    
    this.savePrivacySettings()
  },

  // 切换微信授权
  toggleWechatAuth(e) {
    const enabled = e.detail.value
    this.setData({ wechatAuthEnabled: enabled })
    
    if (enabled) {
      wx.showToast({
        title: '微信授权已开启',
        icon: 'success'
      })
    } else {
      wx.showToast({
        title: '微信授权已关闭',
        icon: 'success'
      })
    }
    
    this.savePrivacySettings()
  },

  // 切换数据分析
  toggleAnalytics(e) {
    const enabled = e.detail.value
    this.setData({ analyticsEnabled: enabled })
    
    if (enabled) {
      wx.showToast({
        title: '数据分析已开启',
        icon: 'success'
      })
    } else {
      wx.showToast({
        title: '数据分析已关闭',
        icon: 'success'
      })
    }
    
    this.savePrivacySettings()
  },

  // 清除缓存
  clearCache() {
    wx.showModal({
      title: '确认清除',
      content: '确定要清除所有缓存数据吗？这将释放存储空间，但不会删除您的个人信息。',
      success: (res) => {
        if (res.confirm) {
          wx.showLoading({
            title: '清除中...',
            mask: true
          })
          
          // 清除本地存储
          try {
            wx.clearStorageSync()
            console.log('缓存已清除')
            
            wx.hideLoading()
            wx.showToast({
              title: '缓存已清除',
              icon: 'success'
            })
            
            // 重新加载设置
            this.loadPrivacySettings()
          } catch (error) {
            wx.hideLoading()
            console.error('清除缓存失败:', error)
            wx.showToast({
              title: '清除失败',
              icon: 'error'
            })
          }
        }
      }
    })
  },

  // 导出数据
  exportData() {
    wx.showModal({
      title: '导出数据',
      content: '确定要导出您的个人数据吗？数据将以JSON格式导出。',
      success: (res) => {
        if (res.confirm) {
          this.performDataExport()
        }
      }
    })
  },

  // 执行数据导出
  performDataExport() {
    wx.showLoading({
      title: '导出中...',
      mask: true
    })
    
    try {
      // 收集用户数据
      const userData = {
        userInfo: app.globalData.userInfo || {},
        orders: app.globalData.orders || [],
        cart: app.globalData.cart || [],
        dishes: app.globalData.dishes || [],
        exportTime: new Date().toISOString()
      }
      
      // 转换为JSON字符串
      const jsonData = JSON.stringify(userData, null, 2)
      
      // 复制到剪贴板
      wx.setClipboardData({
        data: jsonData,
        success: () => {
          wx.hideLoading()
          wx.showModal({
            title: '导出成功',
            content: '数据已复制到剪贴板，您可以粘贴到文件中保存。',
            showCancel: false
          })
        },
        fail: () => {
          wx.hideLoading()
          wx.showToast({
            title: '导出失败',
            icon: 'error'
          })
        }
      })
    } catch (error) {
      wx.hideLoading()
      console.error('导出数据失败:', error)
      wx.showToast({
        title: '导出失败',
        icon: 'error'
      })
    }
  },

  // 删除账号
  deleteAccount() {
    this.setData({
      showDeleteModal: true
    })
  },

  // 取消删除
  cancelDelete() {
    this.setData({
      showDeleteModal: false
    })
  },

  // 确认删除账号
  confirmDelete() {
    wx.showModal({
      title: '最终确认',
      content: '这是最后一次确认，删除后无法恢复。确定要删除账号吗？',
      success: (res) => {
        if (res.confirm) {
          this.performAccountDeletion()
        }
      }
    })
  },

  // 执行账号删除
  async performAccountDeletion() {
    wx.showLoading({
      title: '删除中...',
      mask: true
    })
    
    try {
      // 这里应该调用云函数删除用户数据
      // 由于是本地版本，我们只清除本地数据
      
      // 清除所有本地数据
      wx.clearStorageSync()
      
      // 重置全局数据
      app.globalData.userInfo = null
      app.globalData.orders = []
      app.globalData.cart = []
      app.globalData.dishes = []
      app.globalData.isLoggedIn = false
      
      wx.hideLoading()
      
      wx.showModal({
        title: '账号已删除',
        content: '您的账号已被删除，即将返回首页。',
        showCancel: false,
        success: () => {
          // 返回首页
          wx.reLaunch({
            url: '/pages/index/index'
          })
        }
      })
    } catch (error) {
      wx.hideLoading()
      console.error('删除账号失败:', error)
      wx.showToast({
        title: '删除失败',
        icon: 'error'
      })
    }
  },

  // 查看隐私政策
  viewPrivacyPolicy() {
    wx.navigateTo({
      url: '/pages/profile/privacy-policy/privacy-policy'
    })
  },

  // 联系我们
  contactUs() {
    wx.showModal({
      title: '联系我们',
      content: '如有隐私相关问题，请通过以下方式联系我们：\n\n📧 邮箱：privacy@example.com\n📱 微信：privacy_support\n☎️ 电话：400-123-4567',
      showCancel: false,
      confirmText: '知道了'
    })
  },

  // 阻止事件冒泡
  stopPropagation() {
    // 阻止事件冒泡
  }
}) 